package InnerClass;
//外部类
public class Outer {
    //实例变量
    private String name="顾新宇";
    private int age=21;
    //成员内部类 ，与外部类的属性方法一样的等级
    class Inner{
        private String address="苏州";
        private String phone="119";
//        public static int a=19;
       public static  final int a=19;
//        成员内部类里不能定义静态变量，但能定义静态常量
        //当外部类和内部类有同名的属性，优先访问内部的属性
        //为了方便区分内部和外部的属性，outer.this.+外部类属性
        //内部类的属性直接调用
        //内部类可以直接访问外部类的private属性和方法
        public void show(){
            System.out.println(Outer.this.name);
            System.out.println(Outer.this.age);
            System.out.println(address);
            System.out.println(phone);
        }
    }

    public static void main(String[] args) {
//        Outer out = new Outer();先实例化外部
//        Inner inner=out.new Inner();再实例化内部
        Inner inner=new Outer().new Inner();//一步到位
        inner.show();
    }
}
